\documentclass[a4paper,11pt]{article}
\usepackage{algorithm}
\usepackage{algorithmic}

\title{Midterm progress report}
\author{Hylke Buisman}

\begin{document}
\maketitle

\setlength{\parindent}{0pt}
\setlength{\parskip}{0.3em}

\section{Introduction}
This report serves to inform the reader of the progress made in the first few weeks of
the Bachelor's project. In the following sections a summary of this progress and the 
preliminary results are presented. Furthermore the difficulties that were encountered
are listed in the final section.


\section{Progress}
The project started of with an extensive orientation phase, in which I read related
papers and spent a lot of time on building a QR model of my own. This was partially
because my initial subject was different from the current subject. However, this
time spent on modeling was not in vain, since it helped me to get a better understanding
of qualitative reasoning and modeling. After reading papers from the area of qualitative
system identification, I was ready to start with the actual algorithm design.

The first activities consisted of documenting under which circumstances dependencies
are consistent with state values, derivatives and (in)equalities. In addition rules
where formed to check whether a model contains conflicting dependencies.
Hereafter, preliminary pseudo-code was written for the algorithm. At first
we chose for a breadth-first approach. After implementing the outline
of this breadth-first algorithm, we decided that it would be better to adopt another approach.

In this new approach the algorithm will identify the model in steps of increasing 
scope and complexity. The first step identifies a set of dependencies that hold
throughout the state-graph. Typically, these are dependencies that do not contain interactions
and conditions. We call these dependencies naive dependencies.
After identifying naive dependencies, the possible causal paths that explain
the data are enumerated. The search for possible causal paths is guided by knowledge regarding
good and impossible models.

The next step consists of identifying the naive ternary dependencies. This is done using
information from the causal paths. For example, if $C = A - B$ belongs to the model, the
set of naive dependencies will contain $A \stackrel{P_+}{\rightarrow} C$ and $B \stackrel{P_-}{\rightarrow} C$.
Such information is used to prune the set of candidate triples for this ternary relations.
These two steps have almost been fully implemented. The last two steps will identify dependencies
that interact, and dependencies that hold given certain conditions.

Alongside the work on these two steps I have spent time on meetings with Bert and Jochem.
Additionally I worked on keep track of all documentation of these meetings, and forging
it into a report. My goal is to have an almost finish report when the project is over.
In this way I will not forget important information, and will take away some administrative strain
from the last weeks.


\section{Results}

Using the algorithm in its current form, it is possible to identify the \emph{Communicating Vessels} and
\emph{Tree and Shade} models. The algorithm returns a small set of models that comply with the data.
The reason that it can not unambiguously identify the model is that it does not have enough information
to determine the direction of causality. This is, however, not a shortcoming since the algorithms goal
is to return the best models given the available data.

It should be noted that the ternary relations are not yet completely included in the models.
Some extra work should be done to complete this.


\section{Difficulties}
The main difficulty was to find a good outline for the algorithm.
Since the search space is very large, it is important that pruning happens 
early on in the search process. This problem was solved by just choosing an approach.
Once the problems with the approach (breadth-first) became apparent, we could more easily
choose another approach (iterative approach).

\end{document}
